Присвоение значений массиву: Subscripted value is neither array nor pointer nor vector - C (СИ)
Формулировка задачи:
Есть 2 массива:
При попытке присвоить значение
Выскакивает ошибка:subscripted value is neither array nor pointer nor vector. Как исправить?
int **tmp3;
tmp3 = ( int **) malloc(sizeof(int*)*n);
for (i=0; i<n; i++)
{
tmp3[i]=(int*)malloc(sizeof(int)*m);
}
a = ( int **) malloc(sizeof(int*)*n);
for (i=0; i<n; i++)
{
a[i]=(int*)malloc(sizeof(int)*m);
}tmp3[i][j]=a[i][j]
Решение задачи: «Присвоение значений массиву: Subscripted value is neither array nor pointer nor vector»
textual
Листинг программы
for (i = 0; i < n; i++)
{
tmp3[i][0] = a[i][0];
printf ("\n:%d", tmp3[i][0]);
}
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Создается цикл for, который будет выполняться от 0 до n (включительно).
- Внутри цикла, каждой итерации присваивается значение a[i][0] элементу массива tmp3[i][0].
- После каждой итерации, выводится на экран значение элемента массива tmp3[i][0] с помощью функции printf. Вот список действий в виде нумерованного списка:
- Создается переменная i типа int и инициализируется значением 0.
- Создается массив tmp3 типа int размером n на 1.
- Каждая итерация цикла присваивает значение a[i][0] элементу массива tmp3[i][0].
- Выполняется операция вывода на экран значения элемента массива tmp3[i][0] с помощью функции printf.
- Значение переменной i увеличивается на 1 после каждой итерации цикла.
- Цикл выполняется до тех пор, пока значение переменной i меньше n.
- По завершении цикла, переменная i принимает конечное значение.
- Значение переменной i может быть использовано в следующих циклах или операциях.
- Результатом выполнения кода будет вывод на экран значений элементов массива tmp3. Надеюсь, это объяснение помогло вам понять, что происходит в данном коде.