Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Erro Ponteiro para Estrutura


Miltonlp

Pergunta

Bom dia,

Estou tentando fazer um programa mas ele está dando o seguinte erro:

variable-size type declared outside of any function

o código está com uma varíavel com o nome de MAX_PILHAS declarada como global. Minha intenção é que o usuário digite quantas pilhas ele deseja (MAX_PILHAS receberia esse valor).

A questão é que não consigo fazer isso :S

#include <stdio.h>
int MAX_PILHAS;
/*
Aqui entram todas as estruturas e funções utilizadas no programa
*/

[b]struct Pilha *listaPilhas[MAX_PILHAS];[/b]

main () {
    scanf("%d", &MAX_PILHAS);
}
Aqui já começa meu problema, se colocar dessa forma (com a declaração da estrutura fora do main) ele dá esse erro. Tentei colocar a declaração da estrutura dentro do main, mas não identifica essa estrutura nas funções (utilizo essa estrutura em todas as funções do programa). Ah, mesmo colocando dessa forma no código:
int MAX_PILHAS = 10;
por exemplo, eu não consigo, mas se fizer assim:
#define MAX_PILHAS 10
// ou
const int MAX_PILHAS = 10;

O programa roda, mas obviamente não consigo alterar o valor dessa varíavel MAX_PILHAS.

Alguém poderia me explicar o que é esse erro?

Agradeço desde já,

ps: Se precisarem que coloque mais uma parte do código eu posto aqui, mas na verdade eu só queria saber porque ele está aceitando só constantes.

Att

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Só é possível definir um array a partir de uma variável const (não pode ter seu valor alterado durante a execuçã do programa). Se precisar alterar o valor da variável, recomendo que use alocação dinâmica.

Em C++:

#include <iostream>

int main(){
int numero;
std::cout << "Digite o tamanho: ";
std::cin >> numero;

float*array=new float[numero]; //definimos um array de float's de tamanho igual à variável numero

return 0;
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...