Does a Mesh Vertices/Triangles/etc Have to be Compact

If I generate a Mesh procedurally, do the colors/triangles/vertices/normals arrays that I create have to be compact? Can I have sections in the array that are null, provided all the arrays match up? Is there any significant performance penalty to doing this?

My meshes can change frequently and I am trying to avoid generating a bunch of complete arrays from scratch each time,but, if I can’t determine where the vertices I want to change are in the array, that’s what I have to do. I figure if I can put in bulls I can structure the arrays for arbitrary access.

You can’t have actual null entries (it’s impossible to use null for structs), but the graphics card will skip over degenerate triangles (multiple points in a row set to Vector3(0, 0, 0) or whatever).