Учитывая:
double ****A;
my_function(A);
и предполагая, что эти строки появляются буквально в вашем коде без значения, присвоенного A
, мы можем быть уверены, что вы передаете неинициализированное значение, указатель мусорадо my_function
.Это само по себе имеет неопределенное поведение.Будет ли это причиной ошибки сегментации, будет зависеть от того, что my_function
делает с этим значением.
Это:
double ***A;
my_function(&A);
передает допустимое значение типа double****
.Это значение является адресом объявленного объекта.Сам по себе звонок совершенно действителен.(Это может привести к ошибке сегментации в зависимости от того, что my_function
делает с ним, но вы не показали нам, что делает my_function
, поэтому я не буду спекулировать дальше.)
РЕДАКТИРОВАТЬ: Я простозаметил фразу "похоже на следующее" в вашем вопросе.Не видя ваш точный код, мы не знаем, что вы пропустили, и ваш вопрос по сути не отвечает.(Я бы не опубликовал этот ответ, если бы заметил это изначально.)