Массив в си
Автор Лера Nyan задал вопрос в разделе Другие языки и технологии
Как задать двумерный массив строк в C? Как его потом заполнять? и получил лучший ответ
Ответ от Николай Веселуха[гуру]
Можно и так.. .
// _70077822
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
void main()
{
const int size = 3;
const int str_size = 80;
char a[80];
char ** strings = (char **) malloc(size * sizeof(char *));
for (int n = 0; n < size; n++)
{
printf("
Enter %d line...
", n + 1);
strings[n] = (char *) malloc(size * sizeof(char));
strcpy(strings[n], gets(a));
}
system("cls");
for (int n = 0; n < size; n++)
puts((char *)strings[n]);
for (int n = 0; n < size; n++)
free(strings[n]);
free(strings);
getch();
}
Ответ от Vasiliy Para-noir[активный]
Лера, читайте документацию. Если вопросы, можете ко мне в приват. На вопросы отвечу, но за вас делать не буду.
Лера, читайте документацию. Если вопросы, можете ко мне в приват. На вопросы отвечу, но за вас делать не буду.
Ответ от Михаил Ахтямов[активный]
int arr[size1][size2]; Заполнение: for(int i = 0; i < size1; i++) for(int j=0;j< size2; j++) { arr[j] = 1; // твое значение }
int arr[size1][size2]; Заполнение: for(int i = 0; i < size1; i++) for(int j=0;j< size2; j++) { arr[j] = 1; // твое значение }
Ответ от Андрей Кольцов[гуру]
Прикольно, первый раз такое встречаю =) А так не катит (например char[n][m] ) ? Только указать строковый тип. Хотя наверное компилятор ругаться будет
Прикольно, первый раз такое встречаю =) А так не катит (например char[n][m] ) ? Только указать строковый тип. Хотя наверное компилятор ругаться будет
Ответ от Ўрий-17[гуру]
Задать-то не сложно, но что понимается под заполнением?
Задать-то не сложно, но что понимается под заполнением?
Ответ от Ra[гуру]
Можно так, например: #include <stdio.h> #include <string.h> int main () { char *ss[5]; // массив из пяти указателей на char int c; // создаем и сразу же заполняем for (c = 0; c < 5; ++c) { char str[100]; fgets(str, 100, stdin); str[strlen(str) - 1] = 0; // последний символ '
', убираем ss[c] = (char *)malloc(strlen(str)); strcpy(ss[c], str); } puts(""); // выводим for (c = 0; c < 5; ++c) { printf("%s
", ss[c]); } // удаляем for (c = 0; c < 5; ++c) { free(ss[c]); } return 0; }
Можно так, например: #include <stdio.h> #include <string.h> int main () { char *ss[5]; // массив из пяти указателей на char int c; // создаем и сразу же заполняем for (c = 0; c < 5; ++c) { char str[100]; fgets(str, 100, stdin); str[strlen(str) - 1] = 0; // последний символ '
', убираем ss[c] = (char *)malloc(strlen(str)); strcpy(ss[c], str); } puts(""); // выводим for (c = 0; c < 5; ++c) { printf("%s
", ss[c]); } // удаляем for (c = 0; c < 5; ++c) { free(ss[c]); } return 0; }
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Как задать двумерный массив строк в C? Как его потом заполнять?