Pointers IDL结构中指向结构的指针

Pointers IDL结构中指向结构的指针,pointers,nullpointerexception,idl-programming-language,Pointers,Nullpointerexception,Idl Programming Language,我定义了以下结构: point_str={loop_point, x:0d, y:0d} loop_time_str={loop_time_struct, points:ptr_new(/allocate_heap), loop_id:0d, time:0d} loop_str={loop_struct,time_series:replicate(loop_time_str, num_images), loop_id:0d} 点是一个数组,由于点的大小不同,我理解它需要一个指针 稍后,我将创建

我定义了以下结构:

point_str={loop_point, x:0d, y:0d}
loop_time_str={loop_time_struct, points:ptr_new(/allocate_heap), loop_id:0d, time:0d}
loop_str={loop_struct,time_series:replicate(loop_time_str, num_images), loop_id:0d}
点是一个数组,由于点的大小不同,我理解它需要一个指针

稍后,我将创建一个新变量:

curr_loop_intime = {loop_time_struct}
然后填充这些值

FOR POINT=0,n_elements(IND)-1 DO BEGIN
  points_arr[POINT].x = X(IND[POINT])
  points_arr[POINT].y = Y(IND[POINT])
ENDFOR
然后,我尝试通过执行以下操作将点数组指定给循环:

*(curr_loop_intime.points)=ptr_new(points_arr)
但这一行给了我一个错误:

% Unable to dereference NULL pointer: <POINTER  (<NullPointer>)>.
%无法取消对空指针的引用:。

有人有什么建议吗?

似乎您正试图将指向-
点的指针分配给取消引用的指针
curr\u loop\u intime.points
[用*()]包围]。由于以前未将
curr\u loop\u intime.points
指定给指向任何对象,IDL无法取消对其的引用,因此引发错误

尝试从赋值语句中删除*(),以便将指向-
points\u arr
的指针赋给声明为指针类型变量的
.points
结构成员

希望这有帮助