diff --git a/lib/src/code_generator/type.dart b/lib/src/code_generator/type.dart
index 9622ee4..694bacf 100644
--- a/lib/src/code_generator/type.dart
+++ b/lib/src/code_generator/type.dart
@@ -116,7 +116,7 @@
   }
   factory Type.incompleteArray(Type elementType) {
     return Type._(
-      broadType: BroadType.ConstantArray,
+      broadType: BroadType.IncompleteArray,
       child: elementType,
     );
   }
diff --git a/lib/src/header_parser/sub_parsers/structdecl_parser.dart b/lib/src/header_parser/sub_parsers/structdecl_parser.dart
index 5081aed..39c56de 100644
--- a/lib/src/header_parser/sub_parsers/structdecl_parser.dart
+++ b/lib/src/header_parser/sub_parsers/structdecl_parser.dart
@@ -19,6 +19,7 @@
   Struc struc;
   bool nestedStructMember = false;
   bool unimplementedMemberType = false;
+  bool flexibleArrayMember = false;
   bool arrayMember = false;
   _ParsedStruc();
 }
@@ -92,6 +93,12 @@
     _logger.warning(
         'Removed All Struct Members from ${_stack.top.struc.name}(${_stack.top.struc.originalName}), struct member has an unsupported type.');
     return _stack.top.struc.members.clear();
+  } else if (_stack.top.flexibleArrayMember) {
+    _logger.fine(
+        '---- Removed Struct members, reason: incomplete array member ${cursor.completeStringRepr()}');
+    _logger.warning(
+        'Removed All Struct Members from ${_stack.top.struc.name}(${_stack.top.struc.originalName}), Flexible array members not supported.');
+    return _stack.top.struc.members.clear();
   }
 }
 
@@ -118,6 +125,9 @@
           // bindings.
           _stack.top.nestedStructMember = true;
         }
+      } else if (mt.broadType == BroadType.IncompleteArray) {
+        // TODO(68): Structs with flexible Array Members are not supported.
+        _stack.top.flexibleArrayMember = true;
       }
 
       if (mt.getBaseType().broadType == BroadType.Unimplemented) {
diff --git a/test/header_parser_tests/function_n_struct.h b/test/header_parser_tests/function_n_struct.h
index e779d5f..3ee27b8 100644
--- a/test/header_parser_tests/function_n_struct.h
+++ b/test/header_parser_tests/function_n_struct.h
@@ -12,4 +12,13 @@
     struct Struct1 a;
 };
 
+struct Struct3
+{
+    int a;
+    int b[]; // Flexible array member.
+};
+
 void func1(struct Struct2 *s);
+
+// Incomplete array parameter will be treated as a pointer.
+void func2(struct Struct3 s[]);
diff --git a/test/header_parser_tests/function_n_struct_test.dart b/test/header_parser_tests/function_n_struct_test.dart
index b3da1d8..38951f1 100644
--- a/test/header_parser_tests/function_n_struct_test.dart
+++ b/test/header_parser_tests/function_n_struct_test.dart
@@ -32,22 +32,31 @@
       );
     });
 
-    test('func1', () {
+    test('func1 struct pointer parameter', () {
       expect(actual.getBindingAsString('func1'),
           expected.getBindingAsString('func1'));
     });
-    test('Struct2', () {
+    test('func2 incomplete array parameter', () {
+      expect(actual.getBindingAsString('func2'),
+          expected.getBindingAsString('func2'));
+    });
+    test('Struct2 nested struct member', () {
       expect((actual.getBinding('Struct2') as Struc).members.isEmpty, true);
     });
+    test('Struct3 flexible array member', () {
+      expect((actual.getBinding('Struct3') as Struc).members.isEmpty, true);
+    });
   });
 }
 
 Library expectedLibrary() {
   final struc2 = Struc(name: 'Struct2', members: []);
+  final struc3 = Struc(name: 'Struct3', members: []);
   return Library(
     name: 'Bindings',
     bindings: [
       struc2,
+      struc3,
       Struc(name: 'Struct1', members: [
         Member(
           name: 'a',
@@ -63,6 +72,15 @@
           SupportedNativeType.Void,
         ),
       ),
+      Func(
+        name: 'func2',
+        parameters: [
+          Parameter(name: 's', type: Type.pointer(Type.struct(struc3))),
+        ],
+        returnType: Type.nativeType(
+          SupportedNativeType.Void,
+        ),
+      ),
     ],
   );
 }
