如何将字符串复制到同一个的memcpy结构另一个字符串(字符**)?
问题描述:
struct orange_t {
short size;
Month expirationMonth;
char** foodCompanies;
int maxNumberOfFoodCompanies;
int sellingPrice;
};
memcpy(orange->foodCompanies,foodCompany,sizeof(strlen(foodCompany)));
printf("%s %s",orange->foodCompanies[0],foodCompany);
我的问题。我真的不知道如何正确访问橙色食物中的第一个字母,第二个字母等等......如何将字符串复制到同一个的memcpy结构另一个字符串(字符**)?
什么是正确的语法和正确的方法来做到这一点? 我想写几个foodComapny成orange-> foodCompanies,每个foodComapny在另一个地方串在一起。
答
memcpy(orange->foodCompanies,foodCompany,sizeof(strlen(foodCompany)));
是错误的。 sizeof(strlen...)
告诉你一个数到底有多大 - 没有用。
我认为foodCompanies是名称的数组,你想foodCompany添加到该数组。你不显示如何设置数组(重要)。我会认为它不是建立
orange->foodCompanies = malloc(sizeof(char*))// array holds one entry
orange->foodCompanies[0] = strdup(foodCompany);
添加其他的记录,您将需要的realloc或使原有的malloc更大
太少背景,但你尝试'橙> foodCompanies = foodCompany'? '的sizeof(strlen的(foodCompany))'是错误的,它是4或8,根据什么'您的系统上size_t'是。 – mch