Jump to content

Ponteiros e Arrays


Madeira10

Recommended Posts

boas, tenho uma lista na main que tem certos elementos do argv e queria que outra funcao alterasse elementos com valor igual a x mas nao estou a conseguir utilizar bem os ponteiros..

o que fiz foi :

void substitui(int x , int (*lista)[]){
int i;
for(i = 0; i < lista.size(); i++){
if(lista == x)
lista = novo;
}
}

int main(int argc, char *argv[]){
    int lista[argc];
    for(i; i < argc; i++){
if(strcmp(argv , "a")){
lista = atoi(argv[i+1]);
                    substitui( valor1, &lista);
            }
}
Edited by brunoais
geshi
Link to comment
Share on other sites

void foo(int lista[])
{
}

void bar()
{
 int lista[20];

 foo(lista);
}

nota que dentro de "foo" não tens maneira de saber o tamanho da lista, normalmente o tamanho é adicionado à lista de parâmetros desta

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Aqui tens um pequeno exemplo, muito estático, acho que já para ter uma ideia como se faz apontadores com arrays(Usei os dois metodos possiveis para indexar os arrays com os apontadores) :

#include <stdio.h>

void substitui(int x , int * lista, int tam){
int novo,i;
//Escreve a Lista Antes de Trocar
for (i=0;i<tam;i++){
printf ("%d\n",lista[i]);
}
//Troca
for(i = 0; i <tam ; i++){
if (lista[i] > x)
lista[i] = 0;
}
//Escreve Depois
for (i=0;i<tam;i++,lista++){
printf ("%d\n",*lista);
}
}
int main(int argc, char *argv[]){
int i;
int lista[10]={0,1,2,3,4,5,6,7,8,9};
//numeros maiores que 5 passa a 0
substitui (5,lista,10);
//Espera
scanf ("%d");
}
Edited by Marzkor
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.