Error array must be initialized with a brace enclosed initializer

I am getting the following C++ error: array must be initialized with a brace enclosed initializer From this line of C++ int cipher[Array_size][Array_size] = 0; What is the problem here? What d...

I am getting the following C++ error:

array must be initialized with a brace enclosed initializer 

From this line of C++

int cipher[Array_size][Array_size] = 0;

What is the problem here? What does the error mean? Below is the full code:

string decryption(string todecrypt)
{
    int cipher[Array_size][Array_size] = 0;
    string ciphercode = todecrypt.substr(0,3);
    todecrypt.erase(0,3);
    decodecipher(ciphercode,cipher);
    string decrypted = "";
    while(todecrypt.length()>0)
    {
        string unit_decrypt = todecrypt.substr(0,Array_size);
        todecrypt.erase(0,Array_size);
        int tomultiply[Array_size]=0;
        for(int i = 0; i < Array_size; i++)
        {
            tomultiply[i] = int(unit_encrypt.substr(0,1));
            unit_encrypt.erase(0,1);
        }
        for(int i = 0; i < Array_size; i++)
        {
            int resultchar = 0;
            for(int j = 0; j<Array_size; j++)
            {
                resultchar += tomultiply[j]*cipher[i][j]; 
            }
            decrypted += char((resultchar%229)-26);
        }
    }
    return decrypted;
}

Keith Thompson's user avatar

asked Dec 1, 2010 at 21:27

The syntax to statically initialize an array uses curly braces, like this:

int array[10] = { 0 };

This will zero-initialize the array.

For multi-dimensional arrays, you need nested curly braces, like this:

int cipher[Array_size][Array_size]= { { 0 } };

Note that Array_size must be a compile-time constant for this to work. If Array_size is not known at compile-time, you must use dynamic initialization. (Preferably, an std::vector).

answered Dec 1, 2010 at 21:30

Charles Salvia's user avatar

Charles SalviaCharles Salvia

51.7k12 gold badges127 silver badges140 bronze badges

2

You cannot initialize an array to ‘0’ like that

int cipher[Array_size][Array_size]=0;

You can either initialize all the values in the array as you declare it like this:

// When using different values
int a[3] = {10,20,30};

// When using the same value for all members
int a[3] = {0};

// When using same value for all members in a 2D array
int a[Array_size][Array_size] = { { 0 } };

Or you need to initialize the values after declaration. If you want to initialize all values to 0 for example, you could do something like:

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

answered Dec 1, 2010 at 21:34

MahlerFive's user avatar

MahlerFiveMahlerFive

5,1095 gold badges30 silver badges40 bronze badges

1

You can’t initialize arrays like this:

int cipher[Array_size][Array_size]=0;

The syntax for 2D arrays is:

int cipher[Array_size][Array_size]={{0}};

Note the curly braces on the right hand side of the initialization statement.

for 1D arrays:

int tomultiply[Array_size]={0};

answered Dec 1, 2010 at 21:30

Nathan Fellman's user avatar

Nathan FellmanNathan Fellman

120k99 gold badges256 silver badges319 bronze badges

  • Forum
  • Beginners
  • Array must be initialized with a brace-e

Array must be initialized with a brace-enclosed initializer

Hello everyone,

I have a string «path» that I’m trying to assign to the variable «src». But when I try to do this, I get the error «Array must be initialized with a brace-enclosed initializer». Can someone tell me what I have to do? How can I convert a string into a char* ?

1
2
3
string path;
path="myValue";
char* src[1000]=path;

Best regards
theRunner

First, you declared an array of pointers to chars. You just want an array of chars, so you can get rid of the asterisk. Apart from that, there is no implicit conversion from std::string to char*, though there is the other way round (due to its constructors and assignment operators). Basically, you need to specify that you want to convert the std::string into a char*. For this, the best way (and the most common way) is to use the c_str() member function, which returns the underlying char* from the string:

1
2
3
std::string path;
path = "myValue";
char src[1000] = path.c_str();

Why do you need it as an array of char anyway?

Thanks for your replies.

@NT3:
When I try your solution, there is still the same error message: «Array must be initialized with a brace-enclosed initializer»

@RabMac:
When I try your solution, there is an other error message: «Cannot convert ‘std::string {aka std::basic_string<char>}’ to ‘char*’ in initialization»

I need the string as an array of char because the function I want to call needs an array of char.

It works now. I made:

I don’t know what I just did with this line (copied it from the internet), but it works. To be honest, I don’t have the least idea what I am doing here. :-P
But it seems to work.

Topic archived. No new replies allowed.

ratatyq

3 / 3 / 1

Регистрация: 16.09.2015

Сообщений: 121

1

21.01.2016, 16:56. Показов 18748. Ответов 3

Метки нет (Все метки)


Вот собственно сама ошибка: «array must be initialized with a brace-enclosed initializer»
Сама программа должна выводить квадрат в консоль который нарисован в массиве
Код:
main.cpp

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "draw.h"
 
using namespace std;
 
int main() {
    Draw d;
    d.draw();
    return 0;
}

draw.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <cstring>
#include <iostream>
 
using namespace std;
 
class Draw {
private:
    string square[5][5][5][5] {
        {"*","*","*","*","*"},
        {"*"," "," "," ","*"},
        {"*"," "," "," ","*"},
        {"*","*","*","*","*"}
    };
public:
 
    void draw() {
        for(int x = 0; x < 5; x++)
            for(int x2 = 0; x2 < 5; x++)
                for(int x3 = 0; x3 < 5; x3++)
                    for(int x4 = 0; x4< 5; x++)
                        cout << square[x][x2][x3][x4];
    }
};

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

21.01.2016, 16:56

3

Croessmah

Don’t worry, be happy

17781 / 10545 / 2036

Регистрация: 27.09.2012

Сообщений: 26,516

Записей в блоге: 1

21.01.2016, 17:12

2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Draw {
private:
    string square[5][5] {
        {"*","*","*","*","*"},
        {"*","*","*","*","*"},
        {"*","*","*","*","*"},
        {"*","*","*","*","*"}
    };
public:
 
    void draw() {
        for(int x = 0; x < 5; x++){
            for(int x2 = 0; x2 < 5; x2++){
                cout << square[x][x2];
            }
            std::cout << std::endl ;
        }
    }
};



1



3 / 3 / 1

Регистрация: 16.09.2015

Сообщений: 121

21.01.2016, 17:56

 [ТС]

3

Croessmah, Спасибо помогло, вот только не пойму если мы сделали 4-ех значный массив то почему мы указали всего две скобки([][]) заместо четырех([][][][])?



0



0 / 0 / 0

Регистрация: 29.03.2019

Сообщений: 1

30.03.2019, 10:35

4

Массив двухзначный так-то был изначально



0



3 ответа

Синтаксис статической инициализации массива использует фигурные скобки, например:

int array[10] = { 0 };

Это будет инициализировать нулевой массив.

Для многомерных массивов вам нужны вложенные фигурные скобки, например:

int cipher[Array_size][Array_size]= { { 0 } };

Обратите внимание, что Array_size должна быть константой времени компиляции, чтобы это работало. Если Array_size не известно во время компиляции, вы должны использовать динамическую инициализацию. (Предпочтительно, std::vector).

Charles Salvia
01 дек. 2010, в 21:58

Поделиться

Вы не можете инициализировать массив до ‘0’, как это

int cipher[Array_size][Array_size]=0;

Вы можете либо инициализировать все значения в массиве, как вы его объявляете так:

// When using different values
int a[3] = {10,20,30};

// When using the same value for all members
int a[3] = {0};

// When using same value for all members in a 2D array
int a[Array_size][Array_size] = { { 0 } };

Или вам нужно инициализировать значения после объявления. Если вы хотите, например, инициализировать все значения до 0, вы можете сделать что-то вроде:

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

MahlerFive
01 дек. 2010, в 21:41

Поделиться

Вы не можете инициализировать массивы следующим образом:

int cipher[Array_size][Array_size]=0;

Синтаксис для 2D-массивов:

int cipher[Array_size][Array_size]={{0}};

Обратите внимание на фигурные скобки в правой части инструкции инициализации.

для 1D массивов:

int tomultiply[Array_size]={0};

Nathan Fellman
01 дек. 2010, в 21:42

Поделиться

Ещё вопросы

  • 0Как удалить элементы и массив по двум атрибутам в AngularJS?
  • 0Как вы загружаете один файл одновременно?
  • 1Android — устройства-слайдеры вызывают сброс действий
  • 0setInterval с различной длительностью
  • 1Java и Hadoop: несовместимые типы с TextInputFormat
  • 0C ++ сортирует массив в порядке убывания, используя отдельную функцию [closed]
  • 0Высота красно-черного дерева с использованием рекурсии
  • 1Скрипт Google Apps для повторного выполнения функции с помощью триггера
  • 1Как получить системный десятичный разделитель с помощью JavaScript в Google Chrome?
  • 1Как вызвать функцию jJavascript из кода после нажатия кнопки в asp net C #?
  • 0NWMLS IDX PHP скрипт?
  • 1Импорт сверхлегкой модели XNA (число поли)
  • 0Как добавить класс к элементу на основе ввода формы?
  • 0Как получить текст из одного из элементов span внутри другого элемента span?
  • 1Застрял на регулярное выражение в C #
  • 1Как приложение Контакты на Android?
  • 0ASP логин не отправляется
  • 1Несколько Асинхронных / Ожидать Блокировка Try-Catch
  • 1API ‘SymEnumSymbols’ получает только первую букву имени каждого метода
  • 0«Ионная прокрутка» — невозможна вертикальная прокрутка
  • 0Разборный <div> клик по ссылке
  • 0Mysql запрос IF оператор не работает правильно
  • 1Получение представления даты в секундах в Java
  • 0SQL — Как запросить несколько таблиц через ссылку ./ ассоциативная таблица
  • 0JQuery и JS работает на DOM, а не onLoad
  • 0Цепочка подзапросов SQL в большом запросе JOINS
  • 0Как предотвратить расширение строки таблицы CSS до родительской высоты
  • 1Moment.js Неверное сообщение о дате
  • 0Мои div-блоки inline-блока не выровнены на FF и Chrome, но на Safari
  • 0MySQL находит даты более 1 недели с сегодняшнего дня
  • 1Алфавитная сортировка массива синхронно с другим массивом
  • 1GeoServer — DWITHIN неправильно фильтрует точки
  • 1Групповой запрос с использованием mongoose 4.11.0
  • 0Убедитесь, что длинная строка загружена в справочную базу
  • 1jsPlumb — отрисовка нескольких соединений с использованием одной конечной точки для источника и цели
  • 0Bootstrap 3 Упрощенная головоломка
  • 0простой скрипт Jquery не работает: /
  • 0как хранить кратные записи с некоторыми ограничениями?
  • 1Проблема с установкой discord.py 1.0
  • 1Есть ли сопоставимый не сопоставимый с самим собой?
  • 0Как мы можем определить, когда модель вернулась к своему первоначальному значению?
  • 0jquery: могу ли я динамически изменять href ссылки при наведении курсора?
  • 0Как получить параметры в URL после последнего появления определенного символа
  • 1Android новички
  • 0SET NAMES ‘charset_name’ [COLLATE ‘collation_name’] в командной строке mysql
  • 0Не удается загрузить данные для нового добавления выпадающего
  • 0Наведите курсор на один элемент div, измените цвет другого, но затемните все элементы div, которые не отображаются
  • 0PHP — Как использовать переменную суммы внутри цикла
  • 0JQuery не может заставить работать
Posted By: user520621

I am getting the following C++ error:

array must be initialized with a brace enclosed initializer 

From this line of C++

int cipher[Array_size][Array_size] = 0;

What is the problem here? What does the error mean? Below is the full code:

string decryption(string todecrypt)
{
    int cipher[Array_size][Array_size] = 0;
    string ciphercode = todecrypt.substr(0,3);
    todecrypt.erase(0,3);
    decodecipher(ciphercode,cipher);
    string decrypted = "";
    while(todecrypt.length()>0)
    {
        string unit_decrypt = todecrypt.substr(0,Array_size);
        todecrypt.erase(0,Array_size);
        int tomultiply[Array_size]=0;
        for(int i = 0; i < Array_size; i++)
        {
            tomultiply[i] = int(unit_encrypt.substr(0,1));
            unit_encrypt.erase(0,1);
        }
        for(int i = 0; i < Array_size; i++)
        {
            int resultchar = 0;
            for(int j = 0; j<Array_size; j++)
            {
                resultchar += tomultiply[j]*cipher[i][j]; 
            }
            decrypted += char((resultchar%229)-26);
        }
    }
    return decrypted;
}

Solution

The syntax to statically initialize an array uses curly braces, like this:

int array[10] = { 0 };

This will zero-initialize the array.

For multi-dimensional arrays, you need nested curly braces, like this:

int cipher[Array_size][Array_size]= { { 0 } };

Note that Array_size must be a compile-time constant for this to work. If Array_size is not known at compile-time, you must use dynamic initialization. (Preferably, an std::vector).

Answered By: Anonymous

Related Articles

  • Java SSLHandshakeException «no cipher suites in common»
  • easiest way to extract Oracle form xml format data
  • Why do I get «Exception; must be caught or declared to be…
  • Java 256-bit AES Password-Based Encryption
  • Initial bytes incorrect after Java AES/CBC decryption
  • How to fix Invalid AES key length?
  • How do I use 3DES encryption/decryption in Java?
  • How to encrypt/decrypt data in php?
  • Java AES and using my own Key
  • Password encryption/decryption code in .NET

Disclaimer: This content is shared under creative common license cc-by-sa 3.0. It is generated from StackExchange Website Network.


Форум программистов Vingrad

Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> масив указателей, ошибка при инициализации масив указателе 

:(

   

Опции темы

grisWall
Дата 29.4.2013, 03:00 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 18
Регистрация: 28.4.2013

Репутация: нет
Всего: нет

Всем доброго времени суток у меня проблема не могу в С++ инициализировать массив указателей т.е. могу, но вот именно этим способом не получается, кто подскажет что я делаю не так и вообще возможно ли такое:

Код

// test.cpp
#include <iostream>

using namespace std;

int main(void){
char *str[] = "Hello world!";

cout << *str << endl;

return 0;

в консоли ввожу:
$ g++ test.cpp -o test

на выводе ошибка
test.cpp: В функции «int main()»:
test.cpp:7:16: ошибка: array must be initialized with a brace-enclosed initializer
  char *str[] = «Hello world!»;
                ^

Код

// test.cpp
#include <iosteam>

using namespace std;

char *str [] = {"Hello world!"};

int main(void){
cout << *str << endl;
return 0;
}

ввожу:

$ g++ test.cpp -o test

выдает:

test.cpp:6:30: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
 char *str[] = {«Hello world!»};
                              ^

Код

// test.cpp
#include <iosteam>

using namespace std;

int main(void){
static char *str [] = {"Hello world!"};
cout << *str << endl;
return 0;
}

ввожу: 

$ g++ test.cpp -o test

выдает:

test.cpp: В функции «int main()»:
test.cpp:7:38: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
  static char *str[] = {«Hello world!»};
                                      ^

везде в примерах видел и в книгах и на форуме что такое возможно, а у меня не получается 

может кто сталкивался с таким или знает как это решается у меня система Archlinux недавно делал update совсем на днях почти

у меня еще много чего не понятного в С++ встречается что например в Си работает и связанно это с указателями и переменными а так же массивами, просто дальше я еще не продвинулся так сказать изучаю поступательно по мере понимания, владения; то чего не знаю пытаюсь изучить, но если даже это не работает, что уж говорить о перегрузке и классах там я вообще захлебнусь мне кажется…или потеряюсь где нибудь так что вообще не выберусь…. страшновато становится..

Код

//test.c
#include <stdio.h>

int main(void){
static char *str[] = {"Hello world!"};
printf("%sn",*str);
return 0;
}

$ gcc test.c -o test
$ ./test 
Hello world!
————————————
Нормально работает

Код

// test.cpp
#include <stdio.h>

int main(void){
static char *str[] = {"Hello world!"};
printf("%sn",*str);
return 0;
}

Ввожу:

$ gcc test.cpp -o test

на выходе:

test.cpp: В функции «int main()»:
test.cpp:5:38: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
  static char *str[] = {«Hello world!»};
                                      ^
///// И снова предупреждение….

Если кто ответит заранее благодарю за помощь…

PM MAIL   Вверх
math64
Дата 29.4.2013, 07:18 (ссылка)
|    (голосов:1)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72

строка в кавычках — это const char*. Следовательно,

Код

static const char* str[] = { "Hello World!"};

или, если нужно без const:

Код

static char[] helloWorld = "Hello World!";
static char* str[] = { helloWorld };

static в зависимости от использования можно не писать.

PM   Вверх
NoviceF
Дата 29.4.2013, 13:39 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: 2
Всего: 2

Цитата(grisWall @  29.4.2013,  04:00 Найти цитируемый пост)
инициализировать массив указателей

ну и так, на всякий случай, ты же видишь, что у данного массива получает только 1 элемент, то есть, если нужно сделать массив из нескольких указателей указывающих на строки, должно быть что-то типа

Код

static const char* str[] = { "Hello World!", "qwert", "asdf" };

PM MAIL   Вверх
grisWall
Дата 29.4.2013, 23:13 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 18
Регистрация: 28.4.2013

Репутация: нет
Всего: нет

а еще смежный вопрос такой

Код

char ** month(const char * mas[]){
*mas = 
"Hello", "world", "!", "my darling", 
"Привет мир!", "мой дорогой"
;
return (char**) mas;
}
char ** month(const char **);
int main(void){
char ** m;
const char* value[] = {"Hello my darling"};
m = month(value); int i=1;
//for( ; *m; i++)
std :: cout << *(m+i) << std :: endl; 
return 0;
}

все компилирует вроде бы но при вызове

Код

int i=1;
std :: cout << *(m+i) << std :: endl;

 

выдает ошибку сегментирования

PM MAIL   Вверх
volatile
Дата 29.4.2013, 23:30 (ссылка)
|    (голосов:1)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85

Цитата(grisWall @  29.4.2013,  23:13 Найти цитируемый пост)
все компилирует вроде бы 

grisWall, вы меня извините конечно, но вам нужно читать учебник для самых начинающих.
ваш код это — бред.
ошибок и бессмыслиц больше чем операторов.

PM MAIL   Вверх
grisWall
Дата 29.4.2013, 23:35 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 18
Регистрация: 28.4.2013

Репутация: нет
Всего: нет

пусть плохой пример никчемный, но мне понять саму семантику указателей, как они работают через такие вот ошибки а вообще в Си / С++ можно ли передавать массив из функции 

Код

int ** f(){
int * mas[] = {1,2,40,21}; 
return mas;
}

а потом в main обращаться к нему

Код

int main(){
int **n = f();
std :: cout << n[0] << n[1] << n[2] << std :: endl;
}

или такое возбраняется 

может из-за этого у меня ошибка сегментации?

Добавлено @ 23:44

Цитата(volatile @  29.4.2013,  23:30 Найти цитируемый пост)
grisWall, вы меня извините конечно, но вам нужно читать учебник для самых начинающих.
ваш код это — бред.
ошибок и бессмыслиц больше чем операторов.

а какой учебник вы посоветуете? 

я читал у меня два один для чайников С++ за 21 день, а другой С/С++ программироние на языке высокого уровня Т.А.Павловской

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

Это сообщение отредактировал(а) grisWall — 29.4.2013, 23:51

PM MAIL   Вверх
volatile
Дата 29.4.2013, 23:54 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85

Цитата(grisWall @  29.4.2013,  23:35 Найти цитируемый пост)
можно ли передавать массив из функции 

сам массив вообще нельзя ни передать, ни вернуть.
можно вернуть указатель, но только если это не стековый объект.

Цитата(grisWall @  29.4.2013,  23:35 Найти цитируемый пост)
int ** f(){
int * mas[] = {1,2,40,21}; 
return mas;
}

так делать нельзя.
У вас массив создаецца в стеке.
После возврата из функции, стек будет уничтожен (заполнен чем-то другим и т.д.)
И указатель будет указывать на неизвестно что.

int * mas[] = {1,2,40,21};  // а это, кстати, вообще не имеет смысла. массив указателей на инт, вы заполняете не указателями на инт, а неизвестно чем.

grisWall, вам нужно для начала понять что такое массив, что такое указатель, и что такое инт.
учебник — да в любом пожалуй это есть. (здесь есть прикрепленная тема по этому поводу).
просто нужно понять сначала элементарные вещи.

PM MAIL   Вверх
grisWall
Дата 30.4.2013, 01:56 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 18
Регистрация: 28.4.2013

Репутация: нет
Всего: нет

Цитата(volatile @  29.4.2013,  23:54 Найти цитируемый пост)
int * mas[] = {1,2,40,21};  // а это, кстати, вообще не имеет смысла. массив указателей на инт, вы заполняете не указателями на инт, а неизвестно чем.

да спасибо за совет я откомпилировал и увидел что вместо int* я занес int в int *mas[] теперь я понял и так делать не буду в учебниках этого не пишут там не пишут чего нельзя делать там лишь только то что можно а чего нельзя понимаешь из примеров но порой не достаточно откомпилировать нужно чтоб еще кто-то тебе сказал что это не получается поэтому а это потому что так-то так-то и так-то  и тогда появляется знание, когда наделаешь кучу ошибок, 
извините что я так многословен просто это выражение моей точки зрения по поводу того что  мне надо почитать учебники я читал но там не сказано того что мне сказали здесь то что

 строка в кавычках это const char* например

я этого не знал теперь буду знать,
а в Си например

Код

char * str[] = {"Hello", "How are you", "Привет мир!"}

работает, а в С++ нет! надо выражение в скобках обязательно в const char* заносить

volatile, а как же мне в int * mas[] занести данные не подскажите?

Это сообщение отредактировал(а) grisWall — 30.4.2013, 02:07

PM MAIL   Вверх
math64
Дата 30.4.2013, 07:14 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72

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

Код

static int i123[] = {1,2,3}, i456[] = {4,5,6}, i789[]={7,8,9};
static int* mas[] = {i123, i456, i789};

static чтобы переменные создавались не на стеке.

Если нужно запонять не фиксированными значениями, нужно выделять память по new:

Код

int* mas[] = { new int[3], new int[3], new int[3]};
mas[0][0] = 1;
...
mas[2][2] = 9;
...
for (int i=0; i < 3; i++)
  delete[] mas[i];

Это сообщение отредактировал(а) math64 — 30.4.2013, 07:15

PM   Вверх
grisWall
Дата 30.4.2013, 11:58 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 18
Регистрация: 28.4.2013

Репутация: нет
Всего: нет

math64, спасибо теперь я понял

PM MAIL   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Правила форума «C/C++: Для новичков»
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь

  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »

Понравилась статья? Поделить с друзьями:
  • Error array index out of range
  • Error bad source address
  • Error array dimension missing
  • Error bad signature 0x00000000 fatal index file corrupt git
  • Error array bound is not an integer constant before token