C字符串数组函数如何调用函数?

时间:2016-10-29 14:41:29

标签: c

我应该为这个功能提供什么参数?我认为它需要一个字符串数组,但我不知道确切的语法。

(char*)&c.c == (char*)&c + sizeof(A) + sizeof(B)

3 个答案:

答案 0 :(得分:0)

事实上它不需要字符串数组。在C中,您不能将数组发送到函数,也不能从函数返回数组。解?你可以发送""数组的起点和长度。然后接收方可以理解"""阵列。关于您的问题,您必须将数组的起始位置作为第一个参数发送,并将数组的长度作为第二个参数发送。

答案 1 :(得分:0)

char result[10];
write_file(&(result[0]), 10);

char result[10];
write_file(result, 10);

是相同的,因为数组标识符只是其第一个元素的地址

答案 2 :(得分:-1)

updateConstraints表示指向char *result[]的指针数组。但问题是参数char的含义是什么?

通常使用名为len的函数,函数会将字符串写入输出,write_file()参数将是要写出的字符数。

要使用此功能,因为函数外观意味着:

len

或类似的东西:

char *myStrings[] = {
    "string 0",
    "string 1"
};

write_file (myStrings, 0);  // passing zero as len as unsure what it is.

我怀疑该函数实际应该是char *myStrings[20]; // array of pointers to chars int iLoop; for (iLoop = 0; iLoop < 20; iLoop++) { myStrings[iLoop] = malloc(1000); // allocate a large buffer for each string read_string (myStrings[iLoop], 1000); // some made up function to read a string } write_file (myStrings, 20); 或它应该是void write_file(char *result, int len),这样它不应该接受一个指向char数组的指针数组(如何在C中使用字符串)接受指向char数组的指针。

所以void write_file(char result[], int len)的想法是将单个字符串写入文件而不是几个字符串。