2015-11-19 106 views
0
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在另一个地方串在一起。

+0

太少背景,但你尝试'橙> foodCompanies = foodCompany'? '的sizeof(strlen的(foodCompany))'是错误的,它是4或8,根据什么'您的系统上size_t'是。 – mch

回答

1
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更大

相关问题