我有主指針,我不知道它的大小。一個函數將這個指針返回給main。在函數內部,我可以計算指針的大小,因此需要在其中存儲值並將它們返回給main。在這種情況下如何修改/分配內存。如何在這種情況下分配內存?
int main()
{
int *row_value, *col_value;
col_row_value(row_value,col_value);
...
return(0);
}
void col_row_value(row_value,col_value)
{
// how to allocate/modify memory for row_value and col_value and store data
// for example would like to allocate memory here
int i;
for(i=0;i<10;i++) {
row_value[i]=i;
col_value[i]=i;
}
}
我想這樣的事情,這是行不通的
int main()
{
int *row_value, *col_value;
row_value=NULL;
col_value=NULL;
col_row_value(&row_value,&col_value);
...
return(0);
}
void col_row_value(int **row_value,int **col_value)
{
// how to allocate/modify memory for row_value and col_value and store data
// for example would like to allocate memory here
int i;
*row_value=(int*)realloc(*row_value,10*sizeof(int));
*col_value=(int*)realloc(*col_value,10*sizeof(int));
for(i=0;i<10;i++) {
row_value[i]=i;
col_value[i]=i;
}
}
程序設計:爲什麼使用變量的代碼不知道它們的大小?爲什麼你想要一個只關心設置值的函數來完成一個完全不同的任務,即動態內存分配?你爲什麼不能從調用者那裏做到這一點? – Lundin
純粹作爲利益的問題,你爲什麼離開位置0不變? –
我不知道這是否是這種情況,但總的來說,您最好在col_row_vaule中返回分配字段的大小。 –