我真的很難得到這段代碼的工作。我試圖通過引用傳遞一個數組,以便在該函數中對其進行修改。然後我需要將這些修改回傳給原來的呼叫者功能。傳遞數組參考函數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 **值)並刪除了(&)引用,但代碼仍然不起作用 –