Определить указатель массива char с размером - PullRequest
2 голосов
/ 02 мая 2011

Я хочу пометить два объявления ниже:

char string[6];
char * string;

Мне нужен указатель с фиксированным размером, и я не хочу использовать malloc для чего-то такого простого.

Все, что нужно сделать этому массиву символов, - это присвоить значение и получить его функцией, как показано ниже. (Но в цикле отсюда и отдельное объявление) Каков наилучший способ сделать это?

string = "words";
printf("%s",string);

Ответы [ 3 ]

3 голосов
/ 02 мая 2011

Поскольку вы уже заявили, что не можете использовать решение @ nightcracker, я думаю, вам нужно использовать strncpy() для присвоения этой строке.не будет использовать строковый литерал, следовательно, необходимо strncpy().

3 голосов
/ 02 мая 2011

Определите постоянный массив, размер которого подсчитывается инициализатором:

const char string[] = "words";

Если вам нужен указатель на небольшой объем памяти фиксированного размера, просто используйте его следующим образом:

const int STR_LEN = 10;
char str[STR_LEN];

... loop, etc

strncpy(string, "1234567890", STR_LEN);

... etc
1 голос
/ 02 мая 2011

Почему бы не использовать это:

const char * string;
...
string = "words";
printf("%s",string);

(или ваш вопрос не ясен)

...