gpt4 book ai didi

c - 我无法检索主函数中的更新值

转载 作者:行者123 更新时间:2023-11-30 14:38:31 25 4
gpt4 key购买 nike

//Generating all possible binary strings of lenght 'n' 
#include<stdio.h>
#include<stdlib.h>
char a[20];
int ind = 0;
void generateAllBinaryStrings(int n, char **arr,int `i){
if (i == n){
printf("%s \n",a);
arr[ind] = a;
ind++;
return ;
}

a[i] = '0';
generateAllBinaryStrings(n, arr, i+1);

a[i] = '1';
generateAllBinaryStrings(n, arr, i+1) ;

}

int main(){
int n = 3,k;
char *arr[8];
generateAllBinaryStrings(n, arr, 0);
printf("\n");
for(k=0;k<8;k++)
printf("%s\n",arr[k]);
return 0;
}

//为什么这段代码会给出奇怪的输出? //如何返回在另一个中更新的指针值数组 函数到 main()???

//What's wrong with this code?

//output:

cherrycharan@cherrycharan-HP-Notebook:~/Desktop$ ./a.out
// In generateAllBinaryStrings()
000
001
010
011
100
101
110
111

// In main()
111
111
111
111
111
111
111
111

//为什么这段代码给出奇怪的输出? //如何返回在另一个中更新的指针值数组 函数到 main()???

//这段代码有什么问题?

最佳答案

由于您正在进行指针赋值,arr 中的指针将始终指向 a 的更新内容,即 111

arr[ind] = a;

复制内容。

arr[ind] = strdup(a);

并确保之后您空闲

关于c - 我无法检索主函数中的更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56522703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com