У меня есть 2d массив и вам нужно скопировать один 1d-элемент в один массив. Я попытался дублировать свою проблему в приведенном ниже примере. Но ниже, например, даже не компилируется, gcc
жалуетсяcopy 1d element 2d array
индексируются значение не является ни массивом, ни pointer`
на линии TwoDArray[9][99] = 99;
, почему это? Я не совсем понимаю, любая помощь будет оценена!
int main(void)
{
int i = 0;
int* TwoDArray;
int DestArr[100] = {0};
TwoDArray = calloc(10,sizeof(int*));
for (i = 0; i < 10; i++)
TwoDArray[i] = calloc(100,sizeof(int));
TwoDArray[9][99] = 99;
memcpy(DestArr, &TwoDArray[9],sizeof(int)*100);
printf("DestArr[99] %d\n",DestArr[99]);
return 0;
}
EDIT1:
я по ошибке не объявить int** TwoDArray
как указатель на указатель - после изменения этого, теперь он составляет безотказно, но значение в мой результат является 0
и я d ожидаете, что это будет 99
- почему это?
int * не является двумерным массивом или указателем. –
Обручи, ошибка в моем вопросе ... let mer edit, извините! – cerr
изменить на 'int ** TwoDArray;' ... 'memcpy (DestArr, TwoDArray [9], sizeof (int) * 100);' – BLUEPIXY