我真的很难得到这段代码的工作。我试图通过引用传递一个数组,以便在该函数中对其进行修改。然后我需要将这些修改回传给原来的呼叫者功能。传递数组参考函数C
我在这里搜索了类似的问题,但找不到任何可以像我想要做的方式成功运行。
这是我的代码,我非常感谢任何帮助。非常感谢:
#include <stdio.h>
#include <stdlib.h>
#define SIZE_OF_VALUES 5
#define SIZE_OF_STRING 100
void set_values(char **values);
void set_values(char **values)
{
*values = malloc(sizeof(char)*SIZE_OF_VALUES);
for (int i = 0; i < (sizeof(char)*SIZE_OF_VALUES); i++) {
values[i] = malloc(sizeof(char)*SIZE_OF_STRING);
values[i] = "Hello";
//puts(values[i]); //It works fine here.
}
}
int main (int argc, const char * argv[])
{
char *values;
set_values(&values);
for (int i = 0; i < (sizeof(char)*SIZE_OF_VALUES); i++) {
puts(values[i]); //It does not work!
}
return 0;
}
你正在尝试创建一个数组数组,所以“values”应该是一个指针指针(char **值)。 –
感谢您的回复,我已更改为(char **值)并删除了(&)引用,但代码仍然不起作用 –