Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.96
Andrew->
0 / 0 / 0
Регистрация: 12.01.2010
Сообщений: 20
#1

Ошибка "variable-size type declared outside of any function" - C++

12.01.2010, 19:02. Просмотров 3348. Ответов 43
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
int N,K,M;
void vvod(int N,int A[N],int I); // <---
 
void proverka(int J,int M,int A1[M]);
 
void vivod(int I1,int K,int A2[K]);
 
int main()
Добавлено через 36 секунд
variable-size type declared outside of any function
как исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2010, 19:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка "variable-size type declared outside of any function" (C++):

Ошибка при компиляции "Size of the type 'char[]' is unknown or zero" - C++
При компиляции, появляется ошибка: Unit1.cpp(15): E2453 Size of the type 'char' is unknown or zero Помогите исправить. Вот текст...

Ошибка "C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead" - C++
error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use...

Hello World и ошибка "This function or variable may be unsafe. Consider using strcpy_s instead" - C++
int str() { char str21; char str1 = &quot;Hello World&quot;; strcpy(str21, str1); cout &lt;&lt; str1 &lt;&lt; &quot;\n&quot; &lt;&lt; strlen(str1) &lt;&lt; &quot;\n&quot; &lt;&lt;...

Сравнение строк и ошибка "This function or variable may be unsafe" - C++
Помогите разобраться с ошибками писал в Visual Studio 2013 #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; ...

Ошибка компиляции "This function or variable may be unsafe" - C++
Здравствуйте! Подскажите пожалуйста, как исправить ошибку: error c4996: 'strcpy': Twhis function or variable may be unsafe... ...

Ошибка: argument of type "char *" is incompatible with parameter of type "LPCWSTR" - C++
Помогите, пожалуйста, исправить ошибку в программе. #include &lt;iostream&gt; #include &quot;stdio.h&quot; #include &quot;windows.h&quot; #include &lt;conio.h&gt; ...

43
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
12.01.2010, 21:42 #16
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
код с объявлением покажи.
это он и есть
C++
1
2
void vvod(const int N,int A[N],int I);
int main() {}
компилятор: msvc 2008
0
CyBOSSeR
Эксперт С++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
12.01.2010, 21:48 #17
C++
1
2
const int N = 10;
void vvod(int n,int A[N],int I);
Так попробуй.
0
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
12.01.2010, 21:54 #18
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Так попробуй.
так работает, я знаю.
***
gcc оказался более умным, чем msvc
gcc: error: 'N' was not declared in this scope

http://codepad.org/KZgYGrIx
0
CyBOSSeR
Эксперт С++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
12.01.2010, 21:58 #19
Я вообще слабо себе представляю зачем указывать размер массива?
C++
1
void vvod(int N,int A[],int I);
или
C++
1
void vvod(int N,int* A,int I);
0
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
12.01.2010, 22:05 #20
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Я вообще слабо себе представляю зачем указывать размер массива?
в случае одномерных массивов - размер указывать не нужно. всё-равно компилятор игнорирует его.
в случае же многомерных массивов - нужно указывать вторую и более размерность (по крайней мере у меня без указания размерности не получалось откомпилить код)
C++
1
2
3
4
5
6
7
int array[3][10];
void vvod(int x[][10]) { }
 
int main() 
{
  vvod(array);
}
0
Andrew->
0 / 0 / 0
Регистрация: 12.01.2010
Сообщений: 20
12.01.2010, 22:08  [ТС] #21
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Я вообще слабо себе представляю зачем указывать размер массива?
C++
1
void vvod(int N,int A[],int I);
или
C++
1
void vvod(int N,int* A,int I);
в чем разница?
0
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
12.01.2010, 22:09 #22
Цитата Сообщение от Andrew-> Посмотреть сообщение
в чем разница?
ни в чём.
0
Andrew->
0 / 0 / 0
Регистрация: 12.01.2010
Сообщений: 20
12.01.2010, 22:10  [ТС] #23
int* A
int A[]
зачем звездочка?
0
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
12.01.2010, 22:11 #24
Цитата Сообщение от Andrew-> Посмотреть сообщение
зачем звездочка?
почитай книжки по С++. это указатель.
массив при передаче в функцию преобразовывается к указателю на его первый элемент.
0
Andrew->
0 / 0 / 0
Регистрация: 12.01.2010
Сообщений: 20
12.01.2010, 22:15  [ТС] #25
zim22, Сможешь быстро решить задачу?
0
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
12.01.2010, 22:15 #26
Цитата Сообщение от Andrew-> Посмотреть сообщение
Сможешь быстро решить задачу?
нет
1
easybudda
Модератор
Эксперт CЭксперт С++
9662 / 5611 / 952
Регистрация: 25.07.2009
Сообщений: 10,774
13.01.2010, 00:19 #27
Цитата Сообщение от zim22 Посмотреть сообщение
нет. она считается переменной с external linkage. (глобальной переменной)
но НИКАК не статической
Ну пусть будет глобальной. Важнее другое - инициализировать при объявлении всё равно нужно.
0
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
13.01.2010, 10:52 #28
Цитата Сообщение от easybudda Посмотреть сообщение
Важнее другое - инициализировать при объявлении всё равно нужно.
если переменная глобальная, то она сама инициализируется.
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
13.01.2010, 10:59 #29
По умолчанию инициализируются нулем переменные типа static, а вот про глобальные что-то не припомню.
0
easybudda
Модератор
Эксперт CЭксперт С++
9662 / 5611 / 952
Регистрация: 25.07.2009
Сообщений: 10,774
13.01.2010, 12:02 #30
Был неправ, признаю.
C
1
2
3
4
5
6
7
8
#include <stdio.h>
    
int empty_global;
 
int main(void){
    printf("%d\n", empty_global);
    return 0;
}
0 выводит.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2010, 12:02
Привет! Вот еще темы с ответами:

Исправить ошибку "C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead." - C++
Добрый день! Помогите пожалуйста с программой. Программа запускается, но при компиляции выдает ошибку в указанной строке. текст...

Ошибка в Eclipse "Type Program "make" not found in PATH" - C++
Установил на комп Eclipse, MinGW, попробовал запустить уже готовый хэлловорлд, эклипс выдал ошибку &quot;Program &quot;make&quot; not found in PATH&quot;....

Ошибка argument of type "CGroup *" is incompatible with parameter of type "CGroup *" - C++
Задача состоит в том, чтобы на основе текстовых файлов сделать подобие базы данных. Есть 3 связанных таблицы: группы, студенты, оценки. ...

Почему возникает ошибка "function returning function is not allowed" - C++
Подключаю заголовочный файл .dll библиотеки, возникают ошибки #pragma once #include &lt;vector&gt; struct RSA_Interface { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Yandex
Объявления
13.01.2010, 12:02
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru