我应该为这个功能提供什么参数?我认为它需要一个字符串数组,但我不知道确切的语法。
(char*)&c.c == (char*)&c + sizeof(A) + sizeof(B)
答案 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)
的想法是将单个字符串写入文件而不是几个字符串。