mt_glass 发表于 2017-08-17 16:08

通过这几年的学习和成长,突然回头看自己发的帖,决定把这个问题解决了,其实很简单,比如定义int a, foo(char*p),在传递过程中将数组元素中第一个元素的首地址传进去如foo((char*)&a);这样就可以传递了,通过对memcpy将当前的地址在放到另一个相同长度的数组里面,就能通过这样传递参数了。

mt_glass 发表于 2017-08-17 16:17

#include <stdio.h>
#include <stdlib.h>
void func(char * str)
{
   int b;
    int i;
    memcpy(&b,str,sizeof(b));
    for(i=0;i<10;i++)
    {   
      printf ( "%d\n",b );
    }   
}

int main ( int argc, char *argv[] )
{
    int a={1,2,3,4,5,6,7,8,9,10};

    func((char *)&a);

    return EXIT_SUCCESS;
}/* end of function main*/

eveson 发表于 2018-05-02 00:42

只有写foo的人知道怎么用,其他人不知道,也就是说函数设计的不具有通用性

eveson 发表于 2018-05-02 11:48

不具有通用性

mt_glass 发表于 2018-05-08 16:32

是的,一般设计函数都会foo(char*buffer,int len);方式来告诉buffer的长度,这个列子只是个例。

mt_glass 发表于 2018-05-08 16:35

回复 14# eveson
是的,一般设计函数都会foo(char*buffer,int len);方式来告诉buffer的长度,这个列子只是个例。

页: 1 [2]
查看完整版本: linux编程