Duda sobre programación (lenguaje C)

Tengo una pequeña duda, a ver, estoy haciendo un programa con matrices y tal, quiero hacer un módulo que borre las matrices ya echas, mi duda es...simplemente tengo que ponerlas a 0 todas las posiciones de las matrices o para borrarlas....que hay que hacer??

gracias!!
Podrías hacerlo repitiendo el proceso con for indicando la posición del array con una variable, o más de una en caso de que no sea unidimensional e igualándola a 0.
Si buscas un poco por google seguro que encuentras algún ejemplo.
MrCell escribió:Podrías hacerlo repitiendo el proceso con for indicando la posición del array con una variable, o más de una en caso de que no sea unidimensional e igualándola a 0.
Si buscas un poco por google seguro que encuentras algún ejemplo.


lo de poner a 0 lo he mencionado arriba, pero no se si es correcto, lo he puesto a ' ', es decir, al caracter espacio, pero al visualizar me sale en numero 32 en lugar de un espacio
David_Snake escribió:
MrCell escribió:Podrías hacerlo repitiendo el proceso con for indicando la posición del array con una variable, o más de una en caso de que no sea unidimensional e igualándola a 0.
Si buscas un poco por google seguro que encuentras algún ejemplo.


lo de poner a 0 lo he mencionado arriba, pero no se si es correcto, lo he puesto a ' ', es decir, al caracter espacio, pero al visualizar me sale en numero 32 en lugar de un espacio

Porque en C los caracteres realmente son int, y el código ASCII del espacio imagino que será el 32.

Yo creo que lo primero que deberías hacer es definir exactamente que quieres hacer. ¿qué es "borrar la matriz"? ¿Ponerla a 0 , poner un valor nulo, eliminarla completamente de la memoria?
Si la matriz es dinámica, con punteros, podrás borrarla de la memoria. Si es estática, lo único que podrás hacer para "borrar" es ponerlo a un valor de inicialización que quieras.
Xatpy escribió:Si la matriz es dinámica, con punteros, podrás borrarla de la memoria. Si es estática, lo único que podrás hacer para "borrar" es ponerlo a un valor de inicialización que quieras.


+1, y me atrevería a decir por la forma de preguntar, que son matrices estáticas. Si están definidas dentro de una función al salir de la función se libera la memoria, así que fin del problema.
memset(matriz,0,alto*ancho*sizeof(char));

Mano de santo.
si es dinamica algo asi te podria valer
{
for(int i=0;i<nCols;i++)
{
delete[] matriz[i];
matriz[i]=NULL; };
delete[] matriz;
matriz=NULL;
}

Si es estatica pues pon blancos o nulos.
7 respuestas