2015-11-19 173 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更大

相關問題