gpt4 book ai didi

c - 如何将 char* 分配给具有唯一条目的 char* 数组?

转载 作者:行者123 更新时间:2023-11-30 19:43:12 24 4
gpt4 key购买 nike

好吧,这还不是很清楚。我想做的是:

while (//something) {    
char * tempuser;
char * users[100];
tempuser = "bobsmith" //I'm not actually doing this. But using a method that does the same thing
users[i] = tempuser;
}

每次循环中“bobsmith”的位置都不同。如果我按原样运行此命令 5 次,最后一个条目是“janetsmith”,在此之前数组中的所有 5 个位置,无论分配时是否不同,最终都会成为“janetsmith”。我应该如何分配 users[i] 以便它在所有索引中具有不同的值?

最佳答案

不要在循环体中创建数组users,并使用strdup在数组中创建具有相同内容的新字符串。请记住,您使用的是指针而不是某种字符串对象。数组中的每个条目保存内存中文本的地址。

char *users[100]={0}; //one hundred pointers that are null so You don't use a wild one.
int i=0;
while(/*whatever*/) {
char *tmp=getsometext(); //returns char pointer
users[i++]=strdup(tmp); //copies contents pointed by tmp into new memory location and returns its address
}
//don't forget to free every pointer when You are done.

关于c - 如何将 char* 分配给具有唯一条目的 char* 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29840043/

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