VBKesha
@VBKesha

Как присвоить указателю адрес двумерного массива?

В программе есть область памяти в которой хранятся данные, область имеет вид:
char strings[255][100];
Адрес переменной strings мне известен. Помогите описать копию переменной и присвоить ей адрес, я смог получить близкий к нужному мне результат вот таким извратом:
struct strs{
    char str[100];
};
struct strs *str= (struct strs*)0xDEADBEEF;

И в целом оно работает но выглядит крайне некрасиво да и обращаться к строкам неудобно.
Пробовал так:
char *test[255][100] = (char *[255][100]) 0xDEADBEEF;

error C2440: 'type cast' : cannot convert from 'const int' to 'char *[255][100]'
Как правильно это записать?
  • Вопрос задан
  • 3210 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
char *test[255][100] -- это двумерный массив указателей на char.
А вот char (*test)[255][100] -- это указатель на двумерный массив char, чувствуете разницу?

По вашему вопросу:
char (*test)[100] = (char (*)[100]) 0xDEADBEEF;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
@GavriKos нет мне нужен удобный способ обращение к данным распаложенным в указанной области.


Эмм.. char* array = - вот вам и указатель на начало массива. Оттуда уже вычитываете исходя из структуры.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы