2013-11-29 4 views
0
#include <iostream> 

using namespace std; 

int main() 
{ 
    char a[10][10]; 

    for(int i = 0; i < 10; i++) 
    { 
     a[i] = "dfsdfsdfsdf"; 
    } 

    for (int i = 0; i < 10; i++) 
    { 
     cout << a[i]; 
    } 
} 

Я хочу заполнить массив строками. Это работает в PHP. Что я делаю неправильно в C?Многомерный массив символов в c

+0

Вы вводите в заблуждение указатели и массивы. (и немодифицируемые lvalues ​​с изменяемыми lvalues.) –

+0

@mbratch Нет, это будет 'const char * [10]'. –

ответ

0

Поскольку вы используете массивы символов, чтобы представить вашу строку, которую нужно использовать STRCPY функцию:

strcpy(a[i], "dfsdfsdfsdf"); 

Вы, вероятно, следует сделать некоторые проверки длины вашего, чтобы Название переменной убедитесь, что вы не захвачена свой буфер:

strncpy(a[i], "dfsdfsdfsdf", 10); 

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

Смежные вопросы