[英]pass string array out of function in c
我有一個用於構建字符串數組的函數。 在函數內部,我可以不用擔心打印數組,但是程序從被調用的函數返回,數組 (arr) 保持為 NULL。 如何從數組中獲取數據?
謝謝。
main(){
char **arr = NULL;
funct(arr);
printf("%s\n", arr[2];
}
funct(char **arr){
arr = malloc(10*sizeof(char *));
arr[1...n] = calloc(SIZE, sizeof(char));
// Add data to array
}
我可以在您的代碼中看到幾個問題:
printf("%s\\n", arr[2];
你忘記了結束語)
arr
局部於main
函數的變量永遠不會被初始化。 在 C 中,參數是按值傳遞的,這意味着您將NULL
指針傳遞給您的函數,並且在此函數內部,分配了局部指針arr
但不是main
函數之一。 解決方法是在main
函數中分配數組,並將數組的指針和大小傳遞給填充它的函數:
main(){
char **arr = malloc(10*sizeof(char *));
funct(arr, 10);
printf("%s\n", arr[2]);
}
funct(char **arr, int size){
// Add data to array
arr[0] = "first data";
....
arr[size -1] = "last data";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.