Ошибка в VS9 - error C2078: too many initializers

Рейтинг: -1Ответов: 2Опубликовано: 26.01.2011

В чем причина? Вот код, на который ругается компилятор.

char ** funcParam = { "eventId", "eventName" };

Ответы

▲ 6Принят

Потому что char** - это одиночный указатель на указатель, а вы что на вход подаёте?

Надо

char * funcParam[] = { "eventId", "eventName" };

UPD: { "eventId", "eventName" } - это массив указателей, т.е. как бы char * value[], т.е. много адресов, а char ** - это просто один указатель, один адрес в памяти. Поэтому и сообщение такое.

▲ 3

Скорее всего, это не единственная ошибка компилятора, у меня он выдал еще и

error C2440: 'initializing' : cannot convert from 'const char [8]' to 'char **'

Что значит, что компилятор не может преобразовать char[8], т.е. "eventId" в указатель на char.

Перепишите код, так работает:

char *funcParam[] = { "eventId", "eventName" };