diferencia entre sizeof y strlen en c

Posible duplicado:
Diferentes respuestas de strlen y sizeof para el inicio de String basado en Pointer y Array

¿Puede alguien ayudarme a comprender la diferencia entre el método sizeof y el método strlen en la progtwigción en c?

strlen() se usa para obtener la longitud de una matriz de caracteres / cadena.

sizeof() se utiliza para obtener el tamaño real de cualquier tipo de datos en bytes.

Además, sizeof() es una expresión en tiempo de comstackción que le da el tamaño de un tipo o el tipo de una variable. No le importa el valor de la variable.

strlen () es una función que lleva un puntero a un carácter y recorre la memoria desde este carácter, buscando un carácter NULO. Cuenta el número de caracteres antes de encontrar el carácter NULO. En otras palabras, le da la longitud de una cadena terminada en NULO de estilo C.

Los dos son casi diferentes. En C ++, tampoco necesitas mucho, strlen () es para cadenas de estilo C, que deben reemplazarse por C ++ – style std::strings , mientras que la aplicación principal para sizeof() en C es como un argumento a las funciones como malloc() , memcpy() o memset() , todos los cuales no deberías usar en C ++ (usa nuevo, std::copy() , y std::fill() o constructors ).

sizeof no es un método . Es una construcción en tiempo de comstackción que determina la cantidad de memoria que ocupa un tipo particular o una variable. strlen , por otro lado, es una función que cuenta el número de valores consecutivos de caracteres distintos de cero que comienzan en la ubicación especificada en la memoria (que es lo mismo que determinar la longitud de una cadena C terminada en cero).