powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Задачка на создание двумерного массива
10 сообщений из 10, страница 1 из 1
Задачка на создание двумерного массива
    #38253084
Сергей_1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Подскажите пожалуйста как правильно создать двумерный массив [10000000][100]?
Вот код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
// 111111.cpp : Defines the entry point for the console application
#include "stdafx.h"
#include<iostream>
#include<iomanip>
#include<stdlib.h>
#include<ctime>
#include<fstream>
#include<conio.h>

using std::ofstream;

using std::endl;
using std::cout;
using std::cerr;
using std::ios;
using std::cin;

int main()
{   int row,i;
	cout<<"Vvedite kolichestvo stolbsov:";
	cin>>row;

	//Создание файла sort.sql в текстовом формате для печати
	ofstream basePrintFile("sort.sql", ios::out);
	if(!basePrintFile){
		cerr<<"Nevozmojno otkrit' file"<<endl;
		exit(1);
	}
	//Создание файла populate.sql в текстовом формате для печати
	ofstream insertPrintFile("populate.sql", ios::out);
	if(!insertPrintFile){
		cerr<<"Nevozmojno otkrit' file"<<endl;
		exit(1);
	}
int r[100000][3],x[10],y[10];// ВОТ ЗДЕСЬ НАДО СДЕЛАТЬ МАССИВ [10000000][100] КОТОРЫЙ БУДЕТ ИСПОЛЬЗОВАТЬСЯ НИЖЕ
	srand(time(0));
	basePrintFile<<"create database sort_a;"<<'\n'
		<<"use sort_a;"<<'\n'
		<<"create table data"<<'\n'
		<<"("<<'\n';
		//<<"id int unsigned not null auto_increment primary key,"<<'\n'
		for(int i=0;i<row;i++)
		{   basePrintFile<<"number"<<i<<" int(11) not null"<<",\n";
		     
		}
		basePrintFile<<");"<<'\n';

    insertPrintFile<<"USE sort_a;"<<'\n';
for (int i=0; i<100000; i++)
{	
	if (i%2)
	{
		insertPrintFile<<"INSERT INTO data (number_1,number_2,number_3,number_4,number_5) VALUES (";
		for(int j=0;j<row;j++)
	{
		
				r[i][j]=rand()%100000;
			if(j==row-1)
				insertPrintFile<<r[i][j];
			else
				insertPrintFile<<r[i][j]<<",";
			
	}
	
	
insertPrintFile<<");\n";

	}

	else {

	 insertPrintFile<<"INSERT INTO data VALUES (";
	insertPrintFile<<i<<",";
	for(int j=0;j<row;j++)
	{
		
				r[i][j]=rand()%100000;
			if(j==row-1)
				insertPrintFile<<r[i][j];
			else
				insertPrintFile<<r[i][j]<<",";
	}
	
	
insertPrintFile<<");\n";

		}
}  


return 0;
}
...
Рейтинг: 0 / 0
Задачка на создание двумерного массива
    #38253109
C++ Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей_1991,
Такой массив будет занимать около 4 гб оперативки, что для 32-битных процессов превышает допустимый предел. Я бы настоятельно рекомендовал работать с массивами гораздо меньших размеров, выгружая не используемые в данный момент гигабайты информации на диск.
...
Рейтинг: 0 / 0
Задачка на создание двумерного массива
    #38253241
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объявление так и будет:

int a[10000000][100];
...
Рейтинг: 0 / 0
Задачка на создание двумерного массива
    #38253279
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 MasterZiv,

у тебя что, чайные церемонии притупили чувство реальности? попробуй на стеке выделить 10000000x100x4 байт, учитывая, что стек выделяемый под thread по умолчанию в Windows 1Mb ( http://msdn.microsoft.com/en-us/library/windows/desktop/ms686774(v=vs.85).aspx).
...
Рейтинг: 0 / 0
Задачка на создание двумерного массива
    #38253289
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий Широков,

Про это уже написали в топике.
Да, память большая, и её реально ОС не выделит.
Ни на стеке, ни глобально.
Но это от языка уже не зависит.
Человеку же надо было просто узнать, как объявлять двумерный массив.
...
Рейтинг: 0 / 0
Задачка на создание двумерного массива
    #38253293
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, не такая и большая память. 3.8 гига. Может даже и выделиться, если сделать массив глобальным, а не автоматическим.
Попробую потом...
...
Рейтинг: 0 / 0
Задачка на создание двумерного массива
    #38255817
Сергей_1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо за помощь
...
Рейтинг: 0 / 0
Задачка на создание двумерного массива
    #38262826
Станислав Вл.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант отрефакторить до
Код: plaintext
1.
short a[10000000][100]; 
...
Рейтинг: 0 / 0
Задачка на создание двумерного массива
    #38264113
Кот Чеширский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
#include <stdio.h>

int sqlrucpp[10000000][100];

int main()
{
printf("размер массива: %ld\n", sizeof(sqlrucpp));
return 0;
}

Работает на ура.
PS Система Alt Linux 64 :)
...
Рейтинг: 0 / 0
Задачка на создание двумерного массива
    #38265397
Сергей_1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Задачка на создание двумерного массива
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]