¿Cuál es el valor de retorno de una llamada de función si esa función realmente no proporciona una?

Digamos que tenemos el siguiente código:

int func(char str[], int len) {
    // Don't return anything here.
}

int main() {
    char str[] = "Hello";
    int result = func(str, strlen(str));
    printf("%d\n", result);
}

Imprimirá algún valor de cadena -1679929632 en mi computadora. Y cambia de vez en cuando cuando ejecuto.

¿Alguien puede explicar por qué sucede esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta