gpt4 book ai didi

c - 随机化 C 字符串数组

转载 作者:行者123 更新时间:2023-11-30 17:21:45 27 4
gpt4 key购买 nike

我在将随机 C 字符串插入数组的函数时遇到问题。我在 stackexchange 上读到了一些有关此问题的其他问题,但似乎没有一个对我有用。

void rand(const char *tab[], int n){
int i, j;
char c[10];
for(i=0; i<n; i++){
for(j=0; j<10; j++){
c[j]= rand()%26 + 97;
}
tab[i]=c;
}
}

当尝试打印它时,我得到一个空白屏幕,就好像数组是空的一样。我将数组声明为 const char *tab[] 并使用函数 rand(tab, 5)。可能出了什么问题?

最佳答案

您需要复制生成的字符串。并且您需要一个字符串终止符

void rand(const char *tab[], int n){
int i, j;
char c[10];
for(i=0; i<n; i++){
for(j=0; j<9; j++){
c[j]= rand()%26 + 97;
}
c[9] = '\0';
tab[i]=strdup(c) <<<<=====
}
}

字符串在堆上分配 - 完成后释放它们

for(int i=0; i < NO_STRINGS; i++)
{
free(tab[i]);
}

关于c - 随机化 C 字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28203165/

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