Передача многомерного массива в функцию в c? - PullRequest
2 голосов
/ 03 июля 2011

У меня есть массив строк, объявленных так:

char parts[PART_COUNT][PART_MAX];

Затем я создал функцию, которая берет строку и массив строк и разбивает их на те части, которые объявлены так:

WORD PartString(const char *str, char **parts, char sep);

Кажется, что я читаю по частям [i] [j], но если я попытаюсь назначить так:

parts[i][j] = str[x];

Я получаю эту ошибку:

Необработанное исключение в 0x012614d8 в remote.exe: 0xC0000005: Место записи нарушения прав доступа 0xcccccccc.

Может кто-нибудь сказать мне способ сделать это в C? спасибо.

1 Ответ

1 голос
/ 03 июля 2011
#define PART_MAX      1024
#define PART_COUNT    4

Хорошо, мне удалось это исправить, у меня отключены предупреждения моего компилятора, и когда я снова включил их, я получил следующее:

'char **' differs in levels of indirection from 'char [4][1024]'

Вот новое объявление, которое позволяет мне изменять строки вмассив:

WORD PartString(const char *str, char (*parts)[PART_MAX], char sep)

Затем я просто передаю как:

PartString(buffer, parts, '.');
...