buenas,practicando para un exmanen, encontre este ejercicio:
Cita: Dado un puntero p que almacena la dirección de memoria del primer elemento de un vector de n
elementos enteros, construir una función dirNulo para que la llamada a dirNulo(p, n)
devuelva la dirección de memoria del primer elemento del vector que sea igual a 0. Si no hay ningún
elemento igual a 0 entonces la función debe devolver el valor NULL.
Este es el codigo que eh escrito:
Código:
#include <stdio.h>
#include <stdlib.h>
int *dirnulo(int *p,int n){
int i;
for (i=0;i<n;i++){
if (p[i]==0){
return &p[i];
}
else {return p=NULL;}
}
}
int main (){
int linea[7],j;
printf("poner 7 numeros\n");
scanf("%i",linea);
dirnulo(linea,7);
for (j=0;j<7;j++){
printf("elemento %i : %p\n",j+1,&linea[j]);
}
printf("elemento con 0 :%p\n",dirnulo);
system("pause");
}
queria saber si la direccion q me devolvia era la correcta, x eso puse en pantalla la direccion de todos los componentes del array, pero no salen iguales. Se que e puesto alguna garrafada horrible en algun lado, pero no puedo encontrarla, alguien podria hecharme una mano? gracias d antemano por tomarse el tiempo.