@funny4badger

Выражение должно иметь типа указателя на объект. В чем суть ошибки?

#include <stdio.h>        
#include <stdlib.h>
#include <time.h>

int fillFunction(arr, i, j)
{
	for (i = 0; i < 11; i++)
	{
		for (j = 0; j < 11; j++)
		{
			arr[i][j] = random(51) - 25;         // тут ошибка(i подчеркнуто)
		}
	}
}


int main()
{	
	int i, j;	
}


Не могу понять что означает ошибка в 11 строке "Выражение должно иметь типа указателя на объект"
  • Вопрос задан
  • 11873 просмотра
Решения вопроса 2
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Вынужден согласиться с Illia Nezhyhai - этот код - одна большая ошибка :) Причем главная ошибка в том, что у параметров функции нет типа, а следовательно компилятор предполагает, что они имеют тип int (для С, в С++ типа по умолчанию нет, попытка откомпилировать данный код вызовет ошибку). Поэтому разумеется выражение arr[i][j] = что-то там будет неверным.

Во-первых, все параметры функций всегда должны типизироваться - это Вас и спасет от таких вот нелепых ошибок и напомнит, что передается в функцию, если Вы по собственной лени не напишете комментарий с описанием этого
Во-вторых, документирование передаваемых параметров и присвоение переменным нормальных имен, а не i,j,k - поможет и другому, кто будет Ваш код читать, и Вам самому - когда Вы в него полезете через год.
Ответ написан
void fillFunction(int** arr, int i, int j)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы